﻿namespace Tinter.Common.Pagination
{
    /// <summary>
    /// Default implementation of IPageInfo to pass in/ out pagination parameters.
    /// </summary>
    public class PageInfo : IPageInfo
    {
        #region Constructors

        /// <summary>
        /// Default constructor.
        /// </summary>
        public PageInfo()
        {
            this.PageNumber = 1;
            this.PageSize = int.MaxValue;
        }

        #endregion

        #region IPageInfo Members

        /// <summary>
        /// <see cref="IPageInfo"/>
        /// </summary>
        public int ItemCount { get; set; }

        /// <summary>
        /// <see cref="IPageInfo"/>
        /// </summary>
        public int PageNumber { get; set; }

        /// <summary>
        /// <see cref="IPageInfo"/>
        /// </summary>
        public int PageSize { get; set; }

        /// <summary>
        /// <see cref="IPageInfo"/>
        /// </summary>
        public int TotalItemCount { get; set; }

        /// <summary>
        /// <see cref="IPageInfo"/>
        /// </summary>
        public int TotalPageCount { get; set; }

        #endregion
    }
}
